﻿#include <iostream>
using namespace std;
#include <string>
//UTF-8

//第一题
// 求1/2+1/3+...+1/(n+1)的和，并用最简分数表示
//int LeastCM(int a, int b)//求最小公倍数
//{
//	int i = 1;
//	while (1)
//	{
//		if ((i * a) % b == 0)
//		{
//			return i * a;
//		}
//		i++;
//	}
//}
//
//int GreatestCD(int a, int b)//求最大公约数
//{
//	int c = 0;
//	while (c = a % b)
//	{
//		a = b;
//		b = c;
//	}
//	return b;
//}
//
//typedef struct Num
//{
//	int x = 0;
//	int y = 1;
//}Num;
//
//void Sum(int n,Num* num)
//{
//	while (n)
//	{
//		int cm = LeastCM(num->y, n + 1);
//		num->x = num->x * cm / num->y + cm / (n + 1);
//		num->y = cm;
//		n--;
//	}
//}
//int main()
//{
//	Num num;
//	Sum(3, &num);//求出未化简的分数
//	int cd = GreatestCD(num.x, num.y);
//	cout << num.x / cd << "/" << num.y / cd;
//	return 0;
//}

//第二题
//求字符串每个字符出现的次数


int main()
{
	string str;
	getline(cin,str);
	int Count[127] = { 0 };
	for (int i = 0; i < str.length(); i++)
	{
		Count[static_cast <int>(str[i])]++;
	}
	for (int i = 0; i < 127; i++)
	{
		if (Count[i] != 0)
			cout << static_cast<char>(i) << " : " << Count[i] << endl;
	}
	return 0;
}